package br.edu.fateczl.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

import br.edu.fateczl.dao.UsuarioDAO;
import br.edu.fateczl.model.Usuario;

public class GUILogin extends JFrame implements ActionListener {

	private GUIFundo panPrincipal;
	private JPasswordField tfSenha;
	private JTextField tfLogin;
	private boolean logado;

	public static void main(String[] args) {
		GUILogin frame = new GUILogin();
		frame.setVisible(true);
	}

	public GUILogin() {

		this.setExtendedState(JFrame.MAXIMIZED_BOTH);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 1024, 760);
		panPrincipal = new GUIFundo();
		panPrincipal.setImagem(new ImageIcon(GUIControleEmprestimo.class
				.getResource("Plano de Fundo.jpg")).getImage());
		panPrincipal.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(panPrincipal);
		panPrincipal.setLayout(null);

		tfLogin = new JTextField();
		tfLogin.setBounds(627, 333, 235, 20);
		panPrincipal.add(tfLogin);
		tfLogin.setColumns(10);

		JLabel lblTituloBiblioteca = new JLabel(
				"Biblioteca Prof\u00AA Lourdes Aparecida Brito");
		lblTituloBiblioteca.setForeground(Color.BLACK);
		lblTituloBiblioteca.setFont(new Font("Arial", Font.PLAIN, 25));
		lblTituloBiblioteca.setBounds(627, 215, 472, 51);
		panPrincipal.add(lblTituloBiblioteca);

		JLabel lbSubtitulo = new JLabel(
				"Controle de Acervos e Empr\u00E9stimos");
		lbSubtitulo.setForeground(Color.BLACK);
		lbSubtitulo.setFont(new Font("Arial", Font.PLAIN, 25));
		lbSubtitulo.setBounds(652, 247, 472, 51);
		panPrincipal.add(lbSubtitulo);

		tfSenha = new JPasswordField();
		tfSenha.setBounds(627, 389, 235, 20);
		panPrincipal.add(tfSenha);

		JButton btnEntrar = new JButton("Entrar");
		btnEntrar.setBounds(627, 432, 176, 23);
		panPrincipal.add(btnEntrar);

		btnEntrar.addActionListener(this);

		JLabel lblLogin = new JLabel("Login:");
		lblLogin.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblLogin.setBounds(627, 308, 46, 14);
		panPrincipal.add(lblLogin);

		JLabel lblSenha = new JLabel("Senha:");
		lblSenha.setFont(new Font("Tahoma", Font.PLAIN, 12));
		lblSenha.setBounds(627, 364, 46, 14);
		panPrincipal.add(lblSenha);

		JButton btnPrimeiroAcesso = new JButton("Primeiro Acesso");
		btnPrimeiroAcesso.setBounds(627, 466, 176, 23);
		panPrincipal.add(btnPrimeiroAcesso);

		btnPrimeiroAcesso.addActionListener(this);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		String cmd = e.getActionCommand();

		if (cmd.equalsIgnoreCase("Primeiro Acesso")) {
			GUIControleFuncionarios cadastroDeFuncionarios = new GUIControleFuncionarios();
			cadastroDeFuncionarios.setVisible(true);
		}

		else if (cmd.equalsIgnoreCase("Entrar")) {
			String login = tfLogin.getText();
			String senha = new String(tfSenha.getPassword());

			UsuarioDAO usuarioDAO = new UsuarioDAO();
			List<Usuario> usuariosCadastrados = usuarioDAO
					.consultaListaUsuario();
			for (Usuario usuario : usuariosCadastrados) {
				if (login.equals(usuario.getUsuario())
						&& senha.equals(usuario.getSenha())) {
					this.dispose();
					GUIMenuPrincipal guiMenuPrincipal = new GUIMenuPrincipal();
					guiMenuPrincipal.setVisible(true);
					logado = true;
					break;
				}
			}
			if (!logado) {
				JOptionPane.showMessageDialog(null, "Dados Invalidos", "ERRO",
						JOptionPane.ERROR_MESSAGE);

			}
		}else if (cmd.equalsIgnoreCase("Primeiro Acesso")) {
			GUIControleFuncionarios controleFuncionarios = new GUIControleFuncionarios();
			controleFuncionarios.setVisible(true);
			this.dispose();
		}
	}
}
